package util.essential;
import java.util.StringTokenizer;
import java.util.Vector;

/*
 * Created on 02-09-2005
 */

/**
 * Dedalus Proyect.
 * @author  S.A.M.G.  This nested class will contain each new loaded configuration from any  object instance.
 */
public class Configuration
{
	//Attributes:
	private String fileName;
	private Vector<String> variableValues;
	//Constructor:
	public Configuration(String fileName,Vector<String> variableValues){
		this.fileName=fileName;
		this.variableValues=(variableValues!=null)?variableValues:new Vector<String>();
	}
	//Methods:
	/**
	 * @return  the file name where were gotten variable values.
	 */
	public String getFileName() {
		return fileName;
	}
	/**
	 * @return  vector with variable values.
	 */
	public Vector<String> getVariableValues() {
		return variableValues;
	}
	/**
	 * @param variable name.
	 * @return value of the variable name.
	 */
	public String getVariableValue(String variableName)
	{
		StringTokenizer tmp;
		String variable,value=null;
		for(int i=0;i<this.variableValues.size();i++)
		{
			tmp=new StringTokenizer(this.variableValues.elementAt(i).toString(),"=");
			if(tmp.hasMoreTokens()){
				variable=tmp.nextToken().trim();
				if(tmp.hasMoreTokens())value=tmp.nextToken().trim();
				else value=null;
				if(variable.equals(variableName))return value;
			}else variable=null;
		}
		return null;
	}
	/**
	* @param variable name.
	* @return value of the variable name.
	*/
   public String getStringList()
   {
	   String tmp="";
	   for(int i=0;i<this.variableValues.size();i++)
		tmp=tmp+this.variableValues.elementAt(i).toString()+"\n";
	   return tmp;
   }
	/**
	* @param variable name.
	* @return value of the variable name.
	*/
   public String[][] getVariablesAndValues()
   {
	   StringTokenizer tmp;
	   String[][]ans=new String[this.variableValues.size()][2];
	   for(int i=0;i<this.variableValues.size();i++)
	   {
		   tmp=new StringTokenizer(this.variableValues.elementAt(i).toString(),"=");
		   if(tmp.hasMoreTokens()){
			   ans[i][0]=tmp.nextToken().trim();
			   if(tmp.hasMoreTokens())ans[i][1]=tmp.nextToken().trim();
			   else ans[i][1]=null;
		   }else {ans[i][0]=ans[i][1]=null;}
	   }
	   return ans;
   }
}
